import axios from 'axios'
import { Notify } from 'vant'
import router from "../router"


let http = axios.create({
    //npm run build 时 生产模式，直接请求'http://backend-api-01.newbee.ltd/api/v1'
    //npm run serve 时 开发模式，需要配置代理，请求'/api/v1'
    baseURL: process.env.NODE_ENV == 'production' ? 'http://backend-api-01.newbee.ltd/api/v1' : '/api/v1'
})

//添加请求拦截器
http.interceptors.request.use(function (config) {
    config.headers.token = localStorage.getItem('xftoken')
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
http.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    let data = response.data;
    if (data.resultCode != 200) {

        if (data.resultCode == 416) {
            // 代表未登录
            // 如果当前路径就是/login 又去使用push 就会报重复跳转的错误
            if (router.currentRoute.path != '/login') {
                // 416表示没有token，没有认证
                // 放行到登录页，带了一个参数：needback=1
                // 假如我们没有登录，去访问一个商品的详情，得到416，放行到登录页
                // 登录上之后，我们要去上个商品的详情页
                router.push('/login?needback=1')
            }
        }
        // 证明后台给的不是我们要的数据

        Notify({ type: 'danger', message: data.message || "系统繁忙" });


        return Promise.reject(data);
    }
    return response.data;
}, function (error) {
    // 对响应错误做点什么
    Notify({ type: 'danger', message: "系统繁忙" });
    return Promise.reject(error);
});

export default http